package com.wind.taobao.api.trade.item.rest
{
	import com.wind.taobao.api.IPrivateAPI;
	import com.wind.taobao.core.exception.InvalidRequestParametersException;
	import com.wind.taobao.core.util.TaobaoUtils;
	import com.wind.taobao.core.webservice.TaobaoRequest;
	
	import flash.net.FileReference;

	/**
	 * taobao.item.update Request
	 * @author fxy
	 *
	 */
	public class ItemUpdateRequest extends TaobaoRequest implements IPrivateAPI
	{
		public override function get method():String
		{
			return "taobao.item.update"
		}
		/**
		 * Y 	 需要修改的商品id
		 */
		[Bindable]
		public var iid:String;
		/**
		 * N 	商品上传后的状态。可选值:onsale（出售中）,instock（库中）;默认值:onsale
		 */
		[Bindable]
		public var approve_status:String;
		/**
		 * N 	叶子类目id
		 */
		[Bindable]
		public var cid:String;
		/**
		 * N 	商品属性列表。格式:pid:vid;pid:vid。属性的pid调用taobao.itemprops.get.v2取得，属性值的vid用 taobao.itempropvalues.get取得vid。如果该类目下面没有属性，可以不用填写。如果有属性，必选属性必填，其他非必选属性可以选择不填写.属性不能超过35对。所有属性加起来包括分割符不能超过549字节，单个属性没有限制。 如果有属性是可输入的话，则用字段input_str填入属性的值。
		 */
		[Bindable]
		public var props:String;
		/**
		 * N 	商品数量。取值范围：大于零的整数，并需要等于所有SKU数量的和
		 */
		[Bindable]
		public var num:String;
		/**
		 * N 	商品价格。取值范围:0-100000000;精确到2位小数;单位:元。如:200.07，表示:200元7分。需要在正确的价格区间内。
		 */
		[Bindable]
		public var price:String;
		/**
		 * N 	宝贝标题. 不能超过60字节,受违禁词控制
		 */
		[Bindable]
		public var title:String;
		/**
		 *	N 	商品描述. 字数要大于5个字节，小于25000个字节 ，受违禁词控制
		 */
		[Bindable]
		public var desc:String;
		/**
		 * N 	所在地省份。如浙江 具体可以用taobao.areas.get 取到
		 */
		[Bindable]
		public var location__state:String;
		/**
		 * N 	所在地城市。如杭州 具体可以用taobao.areas.get 取到
		 */
		[Bindable]
		public var location__city:String;
		/**
		 * N 	运费承担方式。运费承担方式。可选值:seller（卖家承担）,buyer(买家承担);默认值:seller，卖家承担不用设置邮费和 postage_id.买家承担的时候，必填邮费和postage_id ,如果用户设置了运费模板会优先使用运费模板，否则要同步设置邮费（post_fee,express_fee,ems_fee）。
		 */
		[Bindable]
		public var freight_payer:String;
		/**
		 * N 	有效期。可选值:7,14;单位:天;默认值:14
		 */
		[Bindable]
		public var valid_thru:String;
		/**
		 * N 	是否有发票。可选值:true,false (商城卖家此字段必须为true);默认值:false(无发票)
		 */
		[Bindable]
		public var has_invoice:String;
		/**
		 * N 	是否有保修。可选值:true,false;默认值:false(不保修)
		 */
		[Bindable]
		public var has_warranty:String;
		/**
		 * N 	自动重发。可选值:true,false;默认值:false(不重发)
		 */
		[Bindable]
		public var auto_repost:String;
		/**
		 * N 	橱窗推荐。可选值:true,false;默认值:false(不推荐)
		 */
		[Bindable]
		public var has_showcase:String;
		/**
		 * N 	支持会员打折。可选值:true,false;默认值:false(不打折)
		 */
		[Bindable]
		public var has_discount:String;
		/**
		 * N 	平邮费用。取值范围:0-100000000;精确到2位小数;单位:元。如:5.07，表示:5元7分, 注:post_fee,express_fee,ems_fee需一起填写
		 */
		[Bindable]
		public var post_fee:String;
		/**
		 * N 	快递费用。取值范围:0-100000000;精确到2位小数;单位:元。如:15.07，表示:15元7分
		 */
		[Bindable]
		public var express_fee:String;
		/**
		 * N 	ems费用。取值范围:0-100000000;精确到2位小数;单位:元。如:25.07，表示:25元7分
		 */
		[Bindable]
		public var ems_fee:String;
		/**
		 * N 	上架时间。如2008-05-26 09:12:00
		 */
		[Bindable]
		public var list_time:String;
		/**
		 * N 	加价幅度 如果为0，代表系统代理幅度
		 */
		[Bindable]
		public var increment:String;
		/**
		 * N 	商品图片。类型:JPG,GIF;最大长度:500k
		 */
		[Bindable]
		public var image:FileReference; 	
		/**
		 * N 	商品新旧程度。可选值:new（全新）,unused（闲置）,second（二手）。
		 */
		[Bindable]
		public var stuff_status:String; 	
		/**
		 * N 	商品的积分返点比例。如：5 表示返点比例0.5%. 注意：返点比例必须是>0的整数，而且最大是90,即为9%.B商家在发布非虚拟商品时，返点必须是 5的倍数，即0.5%的倍数。其它是1的倍数，即0.1%的倍数。
		 */
		[Bindable]
		public var auction_point:String; 	
		/**
		 * N 	属性值别名。如pid:vid:别名;pid1:vid1:别名1， pid:属性id vid:值id。总长度不超过512字节
		 */
		[Bindable]
		public var property_alias:String; 	
		/**
		 * N 	用户自行输入的类目属性ID串，结构："pid1,pid2,pid3"，如："20000"（表示品牌） 注：通常一个类目下用户可输入的关键属性不超过1个。
		 */
		[Bindable]
		public var input_pids:String; 	
		/**
		 * N 	用户自行输入的子属性名和属性值，结构:"父属性值;一级子属性名;一级子属性值;二级子属性名;自定义输入值,....",如：“耐克;耐克系列;科比系列;科比系列;2K5,Nike 乔丹鞋;乔丹系列;乔丹鞋系列;乔丹鞋系列;json5”，多个自定义属性用','分割，input_str需要与input_pids一一对应，注：通常一个类目下用户可输入的关键属性不超过1个。所有属性别名加起来不能超过3999字节。
		 */
		[Bindable]
		public var input_str:String; 	
		/**
		 * N 	更新的SKU的数量串，结构如：num1,num2,num3 如:2,3,4
		 */
		[Bindable]
		public var sku_quantities:String; 
		/**
		 * N 	更新的SKU的价格串，结构如：10.00,5.00,… 精确到2位小数;单位:元。如:200.07，表示:200元7分
		 */
		[Bindable]
		public var sku_prices:String; 	
		/**
		 * N 	更新的SKU的属性串，调用taobao.itemprops.get.v2获取类目属性，如果属性是销售属性，再用 taobao.itempropvalues.get取得vid。格式:pid:vid;pid:vid。该字段内的销售属性也需要在props字段填写 . 规则：如果该SKU存在旧商品，则修改；否则新增SKU。
		 */
		[Bindable]
		public var sku_properties:String;
		/**
		 * N 	重新关联商品与店铺类目，结构:",cid1,cid2,...,"，如果店铺类目存在二级类目，必须传入子类目cids。
		 */
		[Bindable]
		public var seller_cids:String; 	
		/**
		 * N 	宝贝所属的运费模板ID，模板可以通过taobao.postages.get获得
		 */
		[Bindable]
		public var postage_id:String; 
		/**
		 * N 	商品文字的版本，繁体传入”zh_HK”，简体传入”zh_CN”，不传默认为简体
		 */
		[Bindable]
		public var lang:String;
		/**
		 * N 	商家编码
		 */
		[Bindable]
		public var outer_id:String; 
		/**
		 * N 	商品所属的产品ID(B商家发布商品需要用)
		 */
		[Bindable]
		public var product_id:String; 	 

		public override function validate():void
		{
			if (!TaobaoUtils.hasValue(iid))
			{
				throw new InvalidRequestParametersException("请求参数[iid]不能为空");
			}
		}
	}
}